之前本人mongdb一直裸跑,学到用户认证后决定给mongodb加个管理员用户,就是在system.admin.user中添加个用户。原程序中链接数据库部分使用的是mongoose来实现的
exports.Connection = mongoose.connect('mongodb://locahost:27017/db);(之前是裸跑所用没有用户名和密码直接就连上了)
可是我改为
exports.Connection = mongoose.connect('mongodb://root:123456@locahost:27017/db);
提示:
MongoError: auth fails
百度后发现这个用户名密码不是db这个数据库的,所以认证失败
后来查阅mongoose API 发现open方法中好像有auth参数
又改成
var db = exports.Connection = mongoose.createConnection();
var options = {
db:{native_parser:true},
server:{poolSize:5},
auth:{
user:“root”,
pass:123456
}
}
db.open(settings.host, settings.db, settings.port, options);
结果还是无法向db数据库中操作数据
最后问题是,我的管理员账户是在system.admin.User中,如何认证通过?通过后又如何操作其他数据库(本例中为db)中的数据?
在原生的mongodb中好像有db.auth(“root”,“123456”) 返回1就是认证通过,那么在mongoose中如何实现呢?
请教各位大牛们,谢谢!
|